package io;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * Created with IntelliJ IDEA.
 * Description: read()方法
 * User: Li_yizYa
 * Date: 2025/5/8
 * Time: 16:42
 */
public class Demo11 {
    /**
     * 使用 buffer 数组限制范围读取
     * @param args
     */
    public static void main(String[] args) {
        try (InputStream inputStream = new FileInputStream("./test.txt")) {
            while (true) {
                byte[] buffer = new byte[1024];
                // 将硬盘中读到的对应数据，填充到 buffer 内存的字节数组中，尽可能填满 (一次 IO 尽可能填满)
                // 此处将 buffer 当成了“输出型参数”
                // n 返回值表示 read 操作，实际读取到多少个字节。
                int n = inputStream.read(buffer);
                if (n == -1) {
                    break;
                }
                for (int i = 0; i < n; i++) {
                    System.out.printf("0x%x\n", buffer[i]);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
